package modele.Batiment;

import controleur.Controleur;
import controleur.MonTimer;
import controleur.TacheExtractionOr;
import modele.Position;

public class ExtracteurOr extends Extracteur {
	
	private static final long serialVersionUID = -4979630314035906564L;
	static public final int pointsDeVieInitiaux = 200;//utilisé par le reste du modèle
	static protected final int coutConstructionOrInitial = 100;
	static protected final int coutConstructionElixirInitial = 100;
	static protected final int tempsConstruction = 5;//en secondes
	static protected final int longueurCote = 1;
	static public final int productionParSecondeInitiale = 20;
	
	public ExtracteurOr(Position position) {
		super("extracteurOr", pointsDeVieInitiaux, 1, coutConstructionOrInitial, coutConstructionElixirInitial, tempsConstruction, longueurCote, position, 0, 0, productionParSecondeInitiale, null);
		productionParSeconde = productionParSecondeInitiale;
	}
	
	
	public int getProductionParSecondeOr(){return this.productionParSeconde;}
	
	public int getProductionParSecondeElixir(){return 0;}
	
	public void actionApresConstructionSpecifique(Controleur controleur)
	{
		new MonTimer(new TacheExtractionOr(controleur, joueur, this), Controleur.tempsDAttenteMillisecondesExtractionOr);
	}
	
	/**
	 * augmente de 10% la production d'or
	 */
	@Override
	protected void augmenterNiveauSpecifique()
	{
		//productionParSeconde = productionParSeconde + (productionParSeconde/10);
		productionParSeconde = 2*productionParSeconde;
	}
	
	public String resumerEtatSpecifique()
	{
		return new String(""+productionParSeconde);
	}
	
	protected int getPointsDeVieInitiaux()
	{
		return pointsDeVieInitiaux;
	}
}
